文件和目录权限chmod,更改所有者和所属组chown,umask命令, 您所在的位置:网站首页 linux umask命令 文件和目录权限chmod,更改所有者和所属组chown,umask命令,

文件和目录权限chmod,更改所有者和所属组chown,umask命令,

#文件和目录权限chmod,更改所有者和所属组chown,umask命令,| 来源: 网络整理| 查看: 265

程序员健身是为了保养还是保命?参与话题讨论赢好礼 >>> 一、chmod更改文件和目录权限 命令chmod(change mode简写)用于改变用户对文件/目录的读写执行权限; 格式:chmod xyz 文件名 (xyz是数字) [root@linux-128 tmp]# chmod 750 111 [root@linux-128 tmp]# ls -ld 111 drwxr-x--- 2 root root 6 10月 23 23:11 111 linux默认目录权限最高为777;默认文件权限最高为666

查看目录信息

[root@linux-128 tmp]# ls -ld 111 drwxr-xr-x 2 root root 6 10月 23 23:11 111

前面文件属性的时候有讲到,文件或目录的详细信息分9段,第1段drwxr-xr-x包含文件的类型和所有者,所属组,其他用户对文件的权限;

r(read)可读 w(write)可写 x(executable)可执行 r=4 w=2 x=1 注意:目录必须有x权限,文件没有x权限 1. chmod //修改文件和目录的权限 [root@linux-128 tmp]# ls -ld 111 drwxr-xr-x 2 root root 6 10月 23 23:11 111 [root@linux-128 tmp]# chmod 750 111 [root@linux-128 tmp]# ls -ld 111 drwxr-x--- 2 root root 6 10月 23 23:11 111 2. chmod –R //联级更改,修改目录本身及目录下所有的子目录文件权限 [root@linux-128 tmp]# ls -l 222/1.txt -ld 222/123 drwxr-xr-x 2 root root 6 10月 25 23:42 222/123 -rw-r--r-- 1 root root 0 10月 25 23:42 222/1.txt [root@linux-128 tmp]# chmod 700 -R 222 [root@linux-128 tmp]# ls -ld 222 -l 222/1.txt -ld 222/123 drwx------ 3 root root 30 10月 25 23:42 222 drwx------ 2 root root 6 10月 25 23:42 222/123 -rwx------ 1 root root 0 10月 25 23:42 222/1.txt

还有一种修改方法:

3. chmod a=rwx,g=rx,o=rx 文件名 u(user) 所有者 g(group)所属组 o(others)其他用户 [root@linux-128 tmp]# chmod u=rwx,g=rx,o=rx -R 222 [root@linux-128 tmp]# ls -ld 222 -l 222/1.txt -ld 222/123 drwxr-xr-x 3 root root 30 10月 25 23:42 222 drwxr-xr-x 2 root root 6 10月 25 23:42 222/123 -rwxr-xr-x 1 root root 0 10月 25 23:42 222/1.txt (all)全部 [root@linux-128 tmp]# chmod a-x -R 222 [root@linux-128 tmp]# ls -ld 222 -l 222/1.txt -ld 222/123 drw-r--r-- 3 root root 30 10月 25 23:42 222 drw-r--r-- 2 root root 6 10月 25 23:42 222/123 -rw-r--r-- 1 root root 0 10月 25 23:42 222/1.txt 二、chown更改所有者和所属组 chown(change ownar)命令用来修改文件的所属主,所属组,其他用户 chown -R 作用于目录联级修改,目录本身和子目录文件。 [root@linux ~]# useradd user1 \\创建用户user1 [root@linux ~]# groupadd group1 \\创建组 group1 [root@linux ~]# chown user1:group1 5.txt \\修改文件5.txt所属主为user1,所属组为group1 [root@linux ~]# ls -l 5.txt -rw-r--r--. 1 user1 group1 78 10月 26 18:01 5.txt chown user1 1.txt \\修改属主 chown user1:group1 1.txt \\修改属主,属组 chown user1.group1 1.txt \\修改属主,属组 chown :group1 1.txt \\修改属组 chown .group1 1.txt \\修改属组 root@linux ~]# ls -l 1.txt -rw-r--r--. 1 root root 0 10月 26 19:44 1.txt [root@linux ~]# chown wzzhan 1.txt [root@linux ~]# !ls ls -l 1.txt -rw-r--r--. 1 wzzhan root 0 10月 26 19:44 1.txt [root@linux ~]# chown :wzzhan 1.txt [root@linux ~]# !ls ls -l 1.txt -rw-r--r--. 1 wzzhan wzzhan 0 10月 26 19:44 1.txt [root@linux ~]# chown root:root 1.txt [root@linux ~]# ls -l 1.txt -rw-r--r--. 1 root root 0 10月 26 19:44 1.txt [root@linux ~]# chown wzzhan.wzzhan 1.txt \\chown也可以用点来隔开 [root@linux ~]# !ls ls -l 1.txt -rw-r--r--. 1 wzzhan wzzhan 0 10月 26 19:44 1.txt chgrp 修改文件属组 chgrp group1 1.txt chgrp -R group1 111 !ls 表示命令历史中以ls开头离我问最经的一条命令 history 历史命令 [root@linux ~]# history 16 midir test 17 mkdir test 18 ls !18 !后面加上历史命令前面的序号也可以执行。 [root@linux ~]# !18 ls 111.bak 222 4.txx 5.txt 6.txt anaconda-ks.cfg install.log.syslog test 1.txt 444 4.txy 666 777 install.log prem 三、umask命令用于改变文件的默认权限

umask XXX(3个x表示数字) umask 022

[root@linux ~]# umask 0022

注意:通常只用到后面三位022 --- -w- -w-

系统默认情况下目录权限值为755,文件权限为644,这个是有umask规定的 777 rwx rwx rwx 666 rw- rw- rw- -022 --- -w- -w- -022 --- -w- -w- = rwx r-x r-x rw- r-- r-- = 7 5 5 6 4 4 四、lsattr 查看文件的特殊属性 lsattr -d 查看目录本身特殊属性 [root@linux-128 tmp]# lsattr 222 ---------------- 222/1.txt ---------------- 222/123 [root@linux-128 tmp]# chattr +i 222/1.txt [root@linux-128 tmp]# chattr +a 222/ 123/ 1.txt 2.txt [root@linux-128 tmp]# chattr +a 222/123/ [root@linux-128 tmp]# lsattr -d 222 -----a---------- 222 lsattr -R 联级,查看目录下子目录子文件的特殊属性 [root@linux-128 tmp]# lsattr -R 222 ----i----------- 222/1.txt -----a---------- 222/123 222/123: ---------------- 222/2.txt 五、chattr 增加删除设定特殊属性 chattr +a 增加后只能追加,不能删除或者直接更改它的内容,非root用户不能设置该属性 chattr +i 增加后不能做任何操作,不能添加,删除,重命名,设定链接,修改属主,属组。 chattr +A 增加后文件或者目录的atime将不可被修改 chattr +S 增加后会将数据同步写入磁盘中 例子1:给文件1.txt加上i权限,然后进行删除,修改、追加内容,修改文件属性,所有者,所属组。 [root@linux-128 tmp]# chattr +i 222/1.txt [root@linux-128 tmp]# lsattr 222/1.txt ----i----------- 222/1.txt [root@linux-128 tmp]# rm 222/1.txt rm:是否删除普通空文件 "222/1.txt"?y rm: 无法删除"222/1.txt": 不允许的操作 [root@linux-128 tmp]# echo '11111'>222/1.txt -bash: 222/1.txt: 权限不够 [root@linux-128 tmp]# echo '11111'>>222/1.txt -bash: 222/1.txt: 权限不够 [root@linux-128 tmp]# chmod 755 222/1.txt chmod: 更改"222/1.txt" 的权限: 不允许的操作 [root@linux-128 tmp]# chown wuzhou:wuzhou 222/1.txt chown: 正在更改"222/1.txt" 的所有者: 不允许的操作

删除i权限后就能正常修改了。

[root@linux-128 tmp]# chattr -i 222/1.txt [root@linux-128 tmp]# chown wuzhou:wuzhou 222/1.txt [root@linux-128 tmp]# ls -l 222/1.txt -rw-r--r-- 1 wuzhou wuzhou 0 10月 25 23:42 222/1.txt 例子2:给文件1.txt加上a权限,然后进行删除,修改、追加内容,修改文件属性,所有者,所属组。 [root@linux-128 tmp]# chattr +a 222/1.txt [root@linux-128 tmp]# lsattr 222/1.txt -----a---------- 222/1.txt [root@linux-128 tmp]# rm 222/1.txt rm:是否删除普通空文件 "222/1.txt"?y rm: 无法删除"222/1.txt": 不允许的操作 [root@linux-128 tmp]# echo '1111'>222/1.txt -bash: 222/1.txt: 不允许的操作 [root@linux-128 tmp]# echo '1111'>>222/1.txt [root@linux-128 tmp]# cat 222/1.txt 1111 [root@linux-128 tmp]# chmod 755 222/1.txt chmod: 更改"222/1.txt" 的权限: 不允许的操作 [root@linux-128 tmp]# mv 222/1.txt 222/2.txt mv: 无法将"222/1.txt" 移动至"222/2.txt": 不允许的操作 [root@linux-128 tmp]# chown root:root 222/2.txt chown: 无法访问"222/2.txt": 没有那个文件或目录 注意:1.txt加上a权限后,只能进行追加内容 针对目录来添加a,i权限 给目录加一个i 属性后,不能给这个目录做任何操作,但是不妨碍已经存在的文件进行修改内容,但不能删除这个文件。 例子: [root@linux-128 tmp]# chattr +i 222 [root@linux-128 tmp]# touch 222/3.txt touch: 无法创建"222/3.txt": 权限不够 [root@linux-128 tmp]# rm 222/1.txt rm:是否删除普通文件 "222/1.txt"?y rm: 无法删除"222/1.txt": 权限不够 [root@linux-128 tmp]# echo '123123'>222/1.txt [root@linux-128 tmp]# cat 222/1.txt 123123 chattr +i 111 给目录加一个a 属性后,该目录能创建文件,修改文件里面的内容,但是不能删除。 例子: [root@linux-128 tmp]# chattr +a 222 [root@linux-128 tmp]# touch 222/2.txt [root@linux-128 tmp]# ls 222 123 1.txt 2.txt [root@linux-128 tmp]# echo '112233'>>222/2.txt [root@linux-128 tmp]# echo '112233'>222/2.txt [root@linux-128 tmp]# cat 222/2.txt 112233 [root@linux-128 tmp]# rm 222/2.txt rm:是否删除普通文件 "222/2.txt"?y rm: 无法删除"222/2.txt": 不允许的操作


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有